import { createRouter, createWebHashHistory } from 'vue-router'
import TopCategory from '@/views/category'
import SubCategory from '@/views/category/sub'
import store from '@/store'
const Layout = () =>
    import ('@/views/Layout')
const Home = () =>
    import ('@/views/home')
const Goods = () =>
    import ('@/views/goods/index')
const Cart = () =>
    import ('@/views/cart/index')
const Login = () =>
    import ('@/views/login/index')
const LoginCallback = () =>
    import ('@/views/login/callback')
const PayCheckout = () =>
    import ('@/views/member/pay/checkout')

const routes = [
    //一级路由布局容器
    {
        path: '/',
        component: Layout,
        children: [
            { path: '/', component: Home },
            { path: '/category/:id', component: TopCategory },
            { path: '/category/sub/:id', component: SubCategory },
            { path: '/product/:id', component: Goods },
            { path: '/cart', component: Cart },
            { path: '/member/checkout', component: PayCheckout },

        ],
    },
    { path: '/login', component: Login },
    { path: '/login/callback', component: LoginCallback }

]

// 创建一个路由实例
const router = createRouter({
    //使用hash方式实现路由
    history: createWebHashHistory(),
    // 配置路由规则
    routes,
    scrollBehavior() {
        return { left: 0, top: 0 }
    }
})

//前置导航守卫
router.beforeEach((to, from, next) => {
    // 用户信息
    const { token } = store.state.user.profile
        // 跳转去member开头的地址却没有登录
    if (to.path.startsWith('/member') && !token) {
        next({ path: '/login', query: { redirectUrl: to.fullPath } })
    }
    next()
})
export default router